"use strict";
function updateCoords(e) {
	pointerX = (e.clientX || e.touches[0].clientX)
		- canvasEl.getBoundingClientRect().left,
		pointerY = e.clientY || e.touches[0].clientY - canvasEl.getBoundingClientRect().top
} function setParticuleDirection(e) {
	var t = anime.random(0, 360) * Math.PI / 180,
		a = anime.random(50, 180),
		n = [-1, 1][anime.random(0, 1)] * a;
	return { x: e.x + n * Math.cos(t), y: e.y + n * Math.sin(t) }
} function createParticule(e, t) {
	var a = {}; return a.x = e,
		a.y = t,
		a.color = colors[anime.random(0, colors.length - 1)],
		a.radius = anime.random(16, 32),
		a.endPos = setParticuleDirection(a),
		a.draw = function () {
			ctx.beginPath(),
				ctx.arc(a.x, a.y, a.radius, 0, 2 * Math.PI, !0),
				ctx.fillStyle = a.color, ctx.fill()
		}, a
} function createCircle(e, t) {
	var a = {};
	return a.x = e,
		a.y = t,
		a.color = "#F00", a.radius = 0.1,
		a.alpha = 0.5,
		a.lineWidth = 6,
		a.draw = function () {
			ctx.globalAlpha = a.alpha,
				ctx.beginPath(),
				ctx.arc(a.x, a.y, a.radius, 0, 2 * Math.PI, !0),
				ctx.lineWidth = a.lineWidth,
				ctx.strokeStyle = a.color, ctx.stroke(),
				ctx.globalAlpha = 1
		}, a
} function renderParticule(e) {
	for (var t = 0; t < e.animatables.length; t++) {
		e.animatables[t].target.draw()
	}
} function animateParticules(e, t) {
	for (var a = createCircle(e, t), n = [], i = 0; i < numberOfParticules; i++) {
		n.push(createParticule(e, t))
	} anime.timeline().add({
		targets: n,
		x: function (e) {
			return e.endPos.x
		}, y: function (e) {
			return e.endPos.y
		}, radius: 0.1,
		duration: anime.random(1200, 1800),
		easing: "easeOutExpo",
		update: renderParticule
	}).add({
		targets: a,
		radius: anime.random(80, 160),
		lineWidth: 0,
		alpha: { value: 0, easing: "linear", duration: anime.random(600, 800) },
		duration: anime.random(1200, 1800),
		easing: "easeOutExpo",
		update: renderParticule, offset: 0
	})
} function debounce(e, t) {
	var a;
	return function () {
		var n = this,
			i = arguments;
		clearTimeout(a),
			a = setTimeout(function () { e.apply(n, i) }, t)
	}
} var canvasEl = document.querySelector(".fireworks");
if (canvasEl) {
	var ctx = canvasEl.getContext("2d"),
	numberOfParticules = 30,
	pointerX = 0, pointerY = 0,
	tap = "mousedown",
	colors = ["#FF1461", "#18FF92", "#5A87FF", "#FBF38C"],
	setCanvasSize = debounce(function () {
		canvasEl.width = 2 * window.innerWidth,
			canvasEl.height = 2 * window.innerHeight,
			canvasEl.style.width = window.innerWidth + "px",
			canvasEl.style.height = window.innerHeight + "px",
			canvasEl.getContext("2d").scale(2, 2)
	}, 500),
	render = anime({
		duration: 1 / 0, update: function () {
			ctx.clearRect(0, 0, canvasEl.width, canvasEl.height)
		}
	});
	document.addEventListener(tap, function (e) {
		"sidebar" !== e.target.id && "toggle-sidebar" !== e.target.id && "A" !== e.target.nodeName && "IMG" !== e.target.nodeName && (render.play(),
			updateCoords(e), animateParticules(pointerX, pointerY))
	}, !1),
		setCanvasSize(), window.addEventListener("resize", setCanvasSize, !1)
} "use strict";
function updateCoords(e) {
	pointerX = (e.clientX || e.touches[0].clientX) - canvasEl.getBoundingClientRect().left,
		pointerY = e.clientY || e.touches[0].clientY - canvasEl.getBoundingClientRect().top
} function setParticuleDirection(e) {
	var t = anime.random(0, 360) * Math.PI / 180, a = anime.random(50, 180),
		n = [-1, 1][anime.random(0, 1)] * a;
	return { x: e.x + n * Math.cos(t), y: e.y + n * Math.sin(t) }
} function createParticule(e, t) {
	var a = {};
	return a.x = e, a.y = t, a.color = colors[anime.random(0, colors.length - 1)],
		a.radius = anime.random(16, 32), a.endPos = setParticuleDirection(a),
		a.draw = function () {
			ctx.beginPath(), ctx.arc(a.x, a.y, a.radius, 0, 2 * Math.PI, !0),
			ctx.fillStyle = a.color, ctx.fill()
		}, a
} function createCircle(e, t) {
	var a = {}; return a.x = e, a.y = t, a.color = "#F00",
		a.radius = 0.1, a.alpha = 0.5, a.lineWidth = 6, a.draw = function () {
			ctx.globalAlpha = a.alpha, ctx.beginPath(),
				ctx.arc(a.x, a.y, a.radius, 0, 2 * Math.PI, !0),
				ctx.lineWidth = a.lineWidth, ctx.strokeStyle = a.color,
				ctx.stroke(), ctx.globalAlpha = 1
		}, a
} function renderParticule(e) {
	for (var t = 0; t < e.animatables.length; t++) { e.animatables[t].target.draw() }
} function animateParticules(e, t) {
	for (var a = createCircle(e, t), n = [], i = 0;
		i < numberOfParticules; i++) { n.push(createParticule(e, t)) } anime.timeline().add({
			targets: n, x: function (e) { return e.endPos.x },
			y: function (e) { return e.endPos.y },
			radius: 0.1,
			duration: anime.random(1200, 1800),
			easing: "easeOutExpo",
			update: renderParticule
		}).add({
			targets: a, radius: anime.random(80, 160),
			lineWidth: 0, alpha: { value: 0, easing: "linear", duration: anime.random(600, 800) },
			duration: anime.random(1200, 1800),
			easing: "easeOutExpo",
			update: renderParticule,
			offset: 0
		})
} function debounce(e, t) {
	var a;
	return function () {
		var n = this,
			i = arguments;
		clearTimeout(a),
			a = setTimeout(function () {
				e.apply(n, i)
			}, t)
	}
} var canvasEl = document.querySelector(".fireworks");
if (canvasEl) {
	var ctx = canvasEl.getContext("2d"),
	numberOfParticules = 30,
	pointerX = 0,
	pointerY = 0,
	tap = "mousedown",
	colors = ["#FF1461", "#18FF92", "#5A87FF", "#FBF38C"],
	setCanvasSize = debounce(function () {
		canvasEl.width = 2 * window.innerWidth,
			canvasEl.height = 2 * window.innerHeight,
			canvasEl.style.width = window.innerWidth + "px",
			canvasEl.style.height = window.innerHeight + "px",
			canvasEl.getContext("2d").scale(2, 2)
	}, 500),
	render = anime({
		duration: 1 / 0,
		update: function () {
			ctx.clearRect(0, 0, canvasEl.width, canvasEl.height)
		}
	});
	document.addEventListener(tap, function (e) {
		"sidebar" !== e.target.id && "toggle-sidebar" !== e.target.id && "A" !== e.target.nodeName && "IMG" !== e.target.nodeName && (render.play(),
			updateCoords(e),
			animateParticules(pointerX, pointerY))
	}, !1),
		setCanvasSize(),
		window.addEventListener("resize", setCanvasSize, !1)
};